package com.example.cs4.service;

import com.example.cs4.model.ChatHistory;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface ChatHistoryService {

    // 获取所有公共历史消息
    List<ChatHistory> getAllChatHistory();

    // 获取与指定用户相关的消息历史（包括公共消息和私聊消息）
    List<ChatHistory> getChatHistoryForUser(String username);

    // 获取与指定接收者或发送者相关的消息历史
    List<ChatHistory> getChatHistoryByReceiverOrSender(String receiver, String sender);

    // 保存聊天历史
    void saveChatHistory(ChatHistory chatHistory);

    /**
     * 标记消息为已读
     * @param messageIds 根据消息ID列表标记消息为已读
     *
     */
    void markMessagesAsReadByIds(List<Integer> messageIds);
    // 新增方法：获取未读消息数量
    int getUnreadMessageCount(String username);
}